#include "widget.h"
#include "ui_widget.h"
#include <QFileDialog>
#include <QFile>
#include <QTextCodec>

Widget::Widget(QWidget *parent)
        : QWidget(parent), ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 点击选取文件按钮，弹出文件对话框
    connect(ui->pushButton, &QPushButton::clicked, [=]() {
        QString path = QFileDialog::getOpenFileName(this, "打开文件", "C:\\Users\\YANHAI\\Desktop");
        // 将路径放入到lineEdit中
        ui->lineEdit->setText(path);
        // 读取内容 放入到 textEdit中
        // QFile默认支持的格式是UTF-8
        QFile file(path);
        // 设置打开方式
        file.open(QIODevice::ReadOnly);

        /// 一次性读取所有内容
//        QByteArray array = file.readAll();

        /// 按行读取
        QByteArray array;
        while (!file.atEnd()) {
            array += file.readLine();
        }
        // 将读取到的数据 放入textEdit中
        ui->textEdit->setText(array);

        /// 编码格式类，读GBK
//        QTextCodec *codec = QTextCodec::codecForName("gbk");
//        ui->textEdit->setText(codec->toUnicode(array));

        // 关闭文件
        file.close();

        /// 写文件
        file.setFileName("C:\\Users\\YANHAI\\Desktop\\bbb.txt");
        file.open(QIODevice::Append);
        file.open(QIODevice::WriteOnly);
        file.write("QFile写文件");
        file.close();
    });
}

Widget::~Widget()
{
    delete ui;
}

